#include "stdafx.h"
using namespace std;

class string_util
{
public:
  static bool in(char c, const string& s)
  {
    for (auto i = s.begin(); i != s.end(); ++i) {
      if (*i == c) return true;
    }
    return false;
  }

  static bool is_white(char c)
  {
    return in(c, " \t\r\n");
  }

  static string trim(const string& s)
  {
    const char *p = s.c_str();
    const char *e = p + s.size() - 1;

    while(*p && is_white(*p))p++;

    while(e>p && *e && is_white(*e)) e--;

    return string(p, e+1);
  }

  static string ltrim(const string& s)
  {
    const char *p = s.c_str();
    while(*p && is_white(*p))p++;

    return string(p);
  }

  static string rtrim(const string& s)
  {
    const char *p = s.c_str();
    const char *e = p + s.size() - 1;
    while(e>=p && *e && is_white(*e)) e--;

    return string(p, e+1);
  }

};

